/**
\mainpage Minesweeper Solver
	
\section Introduction
	This progarm is used to solve the original Microsoft minesweeper 
	game on linux machines. For more infos about the game please refer to 
	<http://www.minesweeper.info/wiki/Windows_Minesweeper> .
	
\section Installation 
	For this program to compile correctly you need to have the
	following libraries installed:

	<B>xdotool</B>: <http://semicomplete.com/files/xdotool/>

	<B>gtk2</B>: <https://developer.gnome.org/gtk2/> 

	<B>openCV</B>: <http://opencv.org/downloads.html> 

	Please follow the instructions in the respective README's for
	installation of these libraries. Make sure to install the latest
	version of xdotool (2.20101014.3063 as of 26.5.2013), otherwise
	there might be errors while compiling.
	
\section Versions
	The latest version can be found via SVN:

	svn checkout http://minesweeper-solver-1.googlecode.com/svn/trunk/ minesweeper-solver-1-read-only

	The makefile lets you choose between 4 versions:

	<B>debug</B>: Takes as input the path to a minesweeper configuration 
		file, which can be found in the 'test' directory and tries 
		to solve the configuration as far as possible with the 
		specified functions. Please look at the 'test.c' sourcefile 
		for more information.

	<B>testing</B>: Lets you play minesweeper at the comment line with help of
		logical solver. Takes as input the x and y dimensions of the
		minefield and the number of mines.

	<B>version2</B>: Helps you to solve the original Microsoft minesweeper 
		from the commend line. Takes as input the x and y dimensions 
		and the number of mines. The fourth input is the time in 
		seconds between consecutive clicks generated by the program.
		We recommend to choose anything higher than 0.001 seconds,
		because otherwise the program receiving the clicks might 
		crash. The final input is a charactar. Specify 'p' if you want 
		the program to continue solving even if it is not sure
		about a mine location. Specify any other letter and the
		program only solves logically.

	<B>finalversion</B>: Essentially does the same thing as version2, but is
		easier to use because of a little graphical interface. Nothing
		has to be specified at the comment line.

\attention So that the last 2 versions work correctly you need to make
	sure that the minefield is never concealed by any other window.

\section The Final version
	The final version opens up a little gtk-interface which has the following
	options: 

	<B>Checkbox with probability</B>: Checking the box and the solver will try continue
	solving when no purely logical can be deduced. Otherwise the solver will
	stop.

	<B>Horizontal size</B>: Please enter the horizontal size of the minefield.

	<B>Vertical size</B>: Please enter the vertical size of the minefield.

\attention It is absolutely essential that horizontal size and vertical size are
	entered correctly. If not done there is no gurantee for the program to 
	run corretly.

	<B>Number of mines</B>: Please enter the number of mines hidden in the minefield.

	<B>Timestamp</B>: Let's you choose the time in seconds between each click.

	<B>Calibrate button</B>: Calibrates the application for a size of the minefield.
	
\attention Whenever the dimensions of the minefield have changed or the minefield
	was moved the application needs to be calibrated.

	<B>Start button</B>: Starts to solve the game with the given options.

	<B>New game button</B>: Whenever a new game is started by the user this button should be
	clicked.

	<B>Let it play button</B>: This will ask the user to click on the new game button 
	and will afterwards try to solve a game. The application will do so until 
	the user interrupts or a game has been completely solved.

\attention If the user clicks not on the correct location of the new game button.
	The application will try solve one game and then it will stop as it has no 
	way to start a new game.

@author Finn Völkel
*/
